For the time being, certain software installed on computers has updating mechanisms. The operating systems and different applications have means in their makeup (such as Windows Update) making it possible to consult remote computers (such as servers on the Internet) to check for the presence of new versions of their components. After discovering new versions, the aforesaid means download the necessary files and perform the installation of the new versions.
It should be noted that the operating systems and applications at present may install not only updated versions of individual components, but also may perform an overall update. For example, the switch from Windows 8 to Windows 10 is possible with the help of the Windows update means.
Various external applications may also have updating means. Some applications may be updated with the use of patches (files containing only new versions of components). Other applications (usually not very large in size) may download distribution kits with an entire updated version. Certain applications, besides executable components, may also update other data for correct operation. Thus, for example, antivirus applications may update separate modules, perform an overall update when switching to a new version, and update the data libraries needed to detect malicious software several times a day.
It should be noted that, along with the foregoing, networks of various organizations may be constantly growing, and have a multitude of possible topologies and are often connected to a global network (having access to the Internet). A situation is also possible where the organization has several local offices, each office having its own local area network organized, and the offices are linked by means of the Internet. It is also desirable to update the software of each computer making up the network of the organization, at least in order to reduce the risks of loss of confidential data by hackers utilizing vulnerabilities of old software versions.
The multitude of possible network topologies and the need to update software often creates inconvenience and additional financial losses for organizations. Thus, if the software of each computer of a local area network is being updated with the use of a remote server, this increases by several fold, and often even by an order of magnitude (if there are 100 or more computers in the network) the traffic required and, accordingly, the financial expenses to pay for this type of update. Furthermore, the speed of obtaining data (in the given case, updates) from a remote server is usually much lower than the speed of obtaining data from other computers within the local area network.
The described problem may be solved in part by updating servers situated within the local area network. Such servers in some cases may be able to reduce the volume of required traffic and increase the speed of distribution of software updates throughout the local area network.
It should be noted that the computers of a network are often divided up into administration groups by the system administrator. Such a division may not allow for the network topology (for example, the group of managers, the testing group). As a result, if an update server has been assigned to an administration group, a computer from the given group may be updated from the assigned update server, but it may not be in the same local area network with the server, which will also result in traffic expenditure.
For a more effective distribution of traffic within networks with complex topology, besides a local update server, it may be desirable to form lists of other computers (update agents) which may distribute updates within a broadcasting domain (network segment).